def calculate_color(temp):
    # 定义温度和对应的颜色值（RGB 格式）
    color_map = {
        16: (74, 144, 226),
        20.75: (135, 206, 235),
        25.5: (144, 238, 144),
        30.25: (255, 215, 0),
        35: (255, 69, 0)
    }
    
    # 将颜色映射转换为排序的列表
    sorted_temps = sorted(color_map.keys())
    
    # 找到温度所在的区间
    if temp <= sorted_temps[0]:
        return color_map[sorted_temps[0]]
    elif temp >= sorted_temps[-1]:
        return color_map[sorted_temps[-1]]
    
    # 查找温度所在的区间
    for i in range(len(sorted_temps) - 1):
        if sorted_temps[i] <= temp <= sorted_temps[i + 1]:
            temp1, temp2 = sorted_temps[i], sorted_temps[i + 1]
            color1 = color_map[temp1]
            color2 = color_map[temp2]
            
            # 计算相对位置
            ratio = (temp - temp1) / (temp2 - temp1)
            
            # 线性插值计算新的 RGB 值
            new_r = int(color1[0] + ratio * (color2[0] - color1[0]))
            new_g = int(color1[1] + ratio * (color2[1] - color1[1]))
            new_b = int(color1[2] + ratio * (color2[2] - color1[2]))
            
            return (new_r, new_g, new_b)
    
    # 如果输入温度超出范围，返回默认颜色
    return color_map[sorted_temps[0]]
    
def rgb_to_hex(rgb):
    # 将 RGB 转换为 HEX 格式
    return "#{:02X}{:02X}{:02X}".format(rgb[0], rgb[1], rgb[2])

# 输入温度
temp = float(input("请输入温度（16.0 到 40.0 之间）："))

# 计算颜色
rgb_color = calculate_color(temp)
hex_color = rgb_to_hex(rgb_color)

print(f"温度 {temp}℃ 对应的颜色：HEX = {hex_color}, RGB = {rgb_color}")